/**
 * desc: 获取 url 中的参数(hash 路由无效)
 * input:
 * @param {String} name 参数名称
 */
export const getQueryString = name => {
  const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i');
  const r = window.location.search.substr(1).match(reg);
  if (r != null) {
    return unescape(r[2]);
  }
  return null;
};

/**
 * desc: 将对象参数转为浏览器地址中可用参数,不含首个 &，例： {index: 0, size: 15} -> index=0&size=15
 * input:
 * @param {Object} query 对象参数
 */
export const queryToParams = query => {
  let param = '';
  Object.keys(query).forEach(key => (param += `&${key}=${query[key]}`));
  return param ? param.slice(1) : '';
};

// 浏览器判别
export const browser = {
  versions: (function () {
    const u = navigator.userAgent;
    return {
      trident: u.indexOf('Trident') > -1, // IE内核
      presto: u.indexOf('Presto') > -1, // opera内核
      webKit: u.indexOf('AppleWebKit') > -1, // 苹果、谷歌内核
      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') === -1, // 火狐内核
      mobile: !!u.match(/AppleWebKit.*Mobile.*/), // 是否为移动终端
      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
      android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, // android终端
      iPhone: u.indexOf('iPhone') > -1, // 是否为iPhone或者QQHD浏览器
      iPad: u.indexOf('iPad') > -1, // 是否iPad
      webApp: u.indexOf('Safari') === -1, // 是否web应该程序，没有头部与底部
      weixin: u.indexOf('MicroMessenger') > -1, // 是否微信 （2015-01-22新增）
      qq: u.indexOf('QQ/') > -1 // 是否QQ内置浏览器
      // qq: u.toLowerCase().match(/QQ/i) == "qq" //是否QQ
    };
  }())
};
